package com.example.intelligentattendancesystem.service;

import com.example.intelligentattendancesystem.pojo.History;
import com.example.intelligentattendancesystem.pojo.User;

import java.util.List;

/**
 * 关于打卡的服务类
 */
public interface SignService {
    /**
     * 获取没有打卡的员工
     *
     * @param workTime 当前时间
     * @return 获取没有打卡的员工
     */
    List<User> getNoSignUserService(String workTime);

    /**
     * 获取迟到的员工
     * @param week  当前星期
     * @param startTime     该时刻表格开始时间
     * @param preEndTime    前一时刻表格结束的时间
     * @return  获取打卡迟到的员工
     */
    List<User> getLateUserService(String currentTime,String week,String startTime,String preEndTime);

    /**
     * 打卡记录的增加（考勤），还需要判断迟到的学生，迟到就添加到迟到表
     * @param userId    用户id
     * @param position  打卡地点
     * @param currentTime   当前时间
     * @param endTime       当前班次结束时间
     * @param startTime     当前班次开始时间
     * @param week
     * @return
     */
    boolean clockInService(int userId,String position,String currentTime,String endTime,String startTime,String week);

    /**
     * 获取本月打卡记录
     * @param currentTime
     * @param userId
     * @return
     */
    List<History> getSignRecord(String currentTime, int userId);

    /**
     * 获取当前打卡员工
     * @param workTime
     * @return
     */
    List<History> getSucAttUser(String workTime);

    /**
     * 获取所有需要打卡的员工
     * @param workTime
     * @return
     */

    List<Integer> getNeedActUsers(String workTime);
}
